The discussion throughout this specification comes about due to the identification of certain prior art problems by the inventors.
In the last few decades, there is a tendency of an increasing number of applications of combinatorial optimization in real life scenarios. Quite often, these real life scenario problems correspond to classes of combinatorial optimization problems that have been categorized in literature. As the dimension of the problem increases, the computational complexity of these problems tends to increase exponentially. These problems belong to a class of problems termed as NP-hard. The NP-hardness renders these optimization problems computationally intractable for exact enumerative approaches, or deterministic algorithms. Therefore, many heuristics as well as meta-heuristics based approaches have surfaced to address the needs for configuring quick and efficient solutions for these problems. These approaches are classified as approximate solution approaches, and the algorithms are usually non-deterministic in nature. Examples may include evolutionary computation, simulated annealing, tabu search, neural networks, adaptive greedy approach, and more recently swarm intelligence approaches such as ant colony optimization.
However, in order to harness the capability of these algorithms to solve real-life problems, one is usually required to put in considerable efforts in designing, implementing and customizing the algorithms to suit the specific nature of the problem domain. Conventional algorithm development processes tend to require a great deal of low-level code generation and modification, which is tedious and inefficient. With these considerations in mind, more and more people turned to developing platforms to facilitate the algorithm development and problem-solving process. Of particular interest is the class of problem-solving environments involving evolutionary algorithms which has attracted a lot of attention, due to its generality and robustness.
In U.S. Pat. No. 6,112,126, an adaptive object-oriented optimization system is presented, which incorporates goal-seeking intelligent software objects. However, this invention is exclusively dedicated to solve only process control optimization. It does not offer much help for general problem-solving.
In U.S. Pat. No. 6,263,325, U.S. Pat. No. 6,086,617, Epogy Process Integration and Design Optimization Software and Hierarchical Evolutionary Engineering Design System (HEEDS) software, problem-solving environments with various optimization techniques including genetic algorithms are presented. They provide a user-friendly interface for exploring various optimization tools for solving different optimization problems being addressed. This class of platforms facilitates the process of algorithm design and thus enhances the efficiency of problem-solving greatly. However, these software tools are essentially simulation environments. Though various algorithms can be configured and executed efficiently in these environments, the execution depends on the entire system. For applications which require embedded real-time solver, this class of environments does not offer the flexibility to configure an efficient stand-alone program, albeita turnkey problem-solving algorithm. In U.S. Pat. No. 5,581,657, distributed computing technology is introduced to enhance the problem-solving power of existing optimization techniques, in particular genetic algorithms. However, since it is still an algorithm executor in essence, it fails to address the need for quick generation of stand-alone problem-solving algorithm.
In U.S. Pat. No. 6,286,017, a graphical environment, which assists users to generate the stand-alone application rapidly, is presented. It contains a modular library, which is managed by spreadsheet, and adopts other software reuse technology. Users are able to retrieve the procedures from the library with the friendly GUI it provides. Based on the procedures selected, a stand-alone application is generated automatically. However, this invention only addresses the programming issue. It does not involve any algorithm design knowledge. Therefore, it may not meet the needs of solution methodology when complex algorithms like meta-heuristics need to be developed.
TOMLAB is a general optimization environment in MATLAB. It is essentially a MATLAB toolbox, which encapsulates various optimization procedures, including complex meta-heuristics like a genetic algorithm. It supposedly makes it easier for users to retrieve the integrated procedures and routines to build up an application in the form of source codes. However, it cannot generate the source codes automatically and the user has to deal with the functional programming language, i.e. MATLAB programming language. This is a big obstacle for users who may not be familiar with MATLAB language. Furthermore, it requires the support of an expensive third party software environment, i.e. MATLAB.
Easy Specification of Evolutionary Algorithm (EASEA) is a high-level script language dedicated to the specification of evolutionary algorithm (EA). It retrieves various EA procedures and routines from well-known EA libraries: GALib and EO. Users compose the .ez file in EASEA language for configuring an evolutionary algorithm. The .ez file is then compiled by EASEA compiler to C++ files. The generated C++ files are in turn compiled and linked with the corresponding library to produce an executable file implementing the evolutionary algorithm specified in the original .ez file. This way, the most tedious codes generation job in algorithm development may be avoided. Therefore the efficiency of application development may be enhanced significantly. However EASEA, as well as another similar language: Evolutionary Algorithm Modeling Language (EAML), is still a form of text-based language, though it is of a higher level of abstraction than any functional programming language. These two script languages both require a specifically designed compiler to translate the script language to a functional programming language. Furthermore, it is necessary for general users to be familiar with the syntax of the language.
Any discussion of documents, devices, acts or knowledge in this specification is included to explain the context of the invention. It should not be taken as an admission that any of the material forms a part of the prior art base or the common general knowledge in the relevant art on or before the priority date of the disclosure and claims herein.